.\" -*-nroff-*-
.ds V 2.110
.de M
.BR "\\$1" "(\\$2)\\$3"
..
.ds E " \-\- 
.if t .ds E \(em
.de Op
.BR "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.de Oy
.BI "\\$1\fR=" "\\$2\fR, " "\\$3\& " "\\$4" "\\$5" "\\$6"
..
.de Ol
.BI "\\$1\fR=" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
..
.de Sp
.if n .sp
.if t .sp 0.4
..
.TH MMPFB 1 "LCDF Typetools" "Version \*V"
.SH NAME
mmpfb \- creates single-master fonts from multiple master fonts
'
.SH SYNOPSIS
.B mmpfb
\%[OPTIONS...]
.I font
'
.SH DESCRIPTION
.B Mmpfb
creates a normal, single-master PostScript font from a multiple master font
by interpolation. You pass it a PFB or PFA font and options specifying the
design point you want; it writes the resulting PFB or PFA font to the
standard output.
.PP
The fonts
.B mmpfb
creates are interpolated at a low level to remove multiple master
instructions from individual characters. Therefore, they can be used by
programs that don't normally understand multiple master fonts, like
.BR ps2pk (1).
.PP
.B Mmpfb
supports fonts with intermediate masters, like Adobe Jenson and Kepler. It
can also create AMCP (Adobe Multiple Master Conversion Program) files for
use by
.M mmafm 1 ;
see
.B \-\-amcp\-info
below.
.PP
The
.I font
argument is either the name of a PFA or PFB font file, or a PostScript font
name. If you give a font name,
.B mmpfb
will find the actual outline file using the PSRESOURCEPATH environment
variable. This colon-separated path is searched for `PSres.upr' files, an
Adobe method for indexing PostScript resources.
.PP
You can also give the name of a multiple
master font instance, like `MinionMM_367_400_12_'.
.B Mmpfb
will parse the font name and create that instance for you. `PSres.upr'
files must be set up for this to work.
'
'
.SH EXAMPLE
'
.nf
% mmpfb \-\-weight=400 \-\-width=600 MyriadMM.pfb > MyriadMM_400_600_.pfb
.fi
'
.SH OPTIONS
Long options may be abbreviated to their unique prefixes.
'
.TP 5
.Oy \-\-output file \-o file
'
Send output to
.I file
instead of standard output.
'
.TP
.BR \-\-pfb ", " \-b
'
Output a PFB font. This is the default.
'
.TP
.BR \-\-pfa ", " \-a
'
Output a PFA font.
'
.TP
.Op \-\-amcp\-info
'
Do not create a font; instead, output an AMCP file for use by
.M mmafm 1 .
A message is printed if the font doesn't have intermediate masters, in
which case no AMCP file is necessary.
'
.TP
.Oy \-\-weight N \-w N
'
Set the weight axis to 
.IR N .
'
.TP
.Oy \-\-width N \-W N
'
Set the width axis to 
.IR N .
'
.TP
.Oy \-\-optical\-size N \-O N
'
Set the optical size axis to 
.IR N .
'
.TP
.Ol \-\-style N
'
Set the style axis to 
.IR N .
.TP
\fB\-\-1\fR=\fIN\fR (\fB\-\-2\fR=\fIN\fR, \fB\-\-3\fR=\fIN\fR, \fB\-\-4\fR=\fIN\fR)
'
Set the first (second, third, fourth) axis to
.IR N .
'
.TP
.Oy \-\-precision N \-p N
'
Set the output precision to
.IR N .
Higher values mean the control points in the output font will be more
exactly aligned; lower values (1 or 2) create smaller output font
files, and are close enough for most purposes. A precision of
.IR N
means that each point will be within
.RI 1/ N
font units of the exact interpolated value. (A font unit is generally
1/7200 inch for a 10-point font.) The default is 5.
'
.TP
.Ol \-\-subrs N
'
Limit the output font to at most
.IR N
subroutines. 256 is a good value for
.IR N .
'
.TP
.BR \-\-no\-minimize
'
Do not minimize the output font definition. By default, 
.B mmpfb
removes extra PostScript code and dictionary definitions from the font.
Supply the
.B \-\-no\-minimize
option to avoid this behavior.
'
.SH TROUBLESHOOTING
.LP
The "IBM" Type 1 font interpreter shipped as part of the X font server and
.B ps2pk
(among others) is inappropriately strict about PostScript code embedded in
a font. The 
.B \-\-minimize
option (now the default) fixes this problem.
.LP
Some versions of Adobe Acrobat Distiller may report "Warning: unable to
embed font X. Invalid character outline data" when distilling an instance
generated by
.BR mmpfb .
This is due to a limitation in the number of font subroutines Distiller can
accept. (Multiple master fonts, and the single-master fonts generated by
.BR mmpfb ,
tend to have a lot of subroutines.) Try limiting the number of subroutines
in the generated font with the
.Op \-\-subrs
option.
'
.SH SEE ALSO
.M mmafm 1
'
.SH DIAGNOSTICS
.TP 5
reducing \fIfont\fR to minimum number of subroutines (\fIN\fR)
You tried to reduce the number of subroutines to less than \fIN\fR using
the 
.Op \-\-subrs
option, but the font needs at least \fIN\fR to function. The output font
will have \fIN\fR subroutines.
'
.SH AUTHOR
.na
Eddie Kohler, ekohler@gmail.com
.PP
The latest version is available from:
.br
http://www.lcdf.org/type/
.PP
Thanks to Melissa O'Neill for suggestions and patient
debugging.
